package com.lancoo.ccas52.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 排课计划
 * </p>
 *
 * @author quin.song
 * @since 2022-12-20
 */
@Data
@Accessors(chain = true)
@TableName("task_info")
@ApiModel(value = "TaskInfo对象", description = "排课计划")
public class TaskInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "task_id", type = IdType.AUTO)
    private Integer taskId;

    private String taskName;

    private String schoolId;

    private String schoolName;

    @ApiModelProperty("学期")
    private String term;

    private String termName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private LocalDateTime termBeginTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private LocalDateTime termEndTime;

    @ApiModelProperty("0:小周  1:大周")
    private Integer weekSet;

    @ApiModelProperty("1:开课计划->预选课程->教学任务->课表编排->在线选课  2:开课计划->教学任务->课表编排->在线选课  3:开课计划->教学任务->课表编排")
    private Integer mainFlow;

    @ApiModelProperty("0各校区独立排课 1全校统一排课")
    private Integer unifiedCampus;

    @ApiModelProperty(value = "排课权限：0:仅教务管理员 1:教务和院系管理员一起排课")
    private Integer arrangeAuthority;

    @ApiModelProperty(value = "默认连上节次")
    private Integer defaultConnectSection;

    @ApiModelProperty(value = "计划的开启类型：0:当前学期  1:下学期")
    private Integer openType;

    @ApiModelProperty("0未锁定 1锁定正常课表")
    private Integer isLock;

    @ApiModelProperty("排课计划类型： 0：非模拟计划 1：模拟计划")
    private Integer flag;

    @ApiModelProperty("创建人id")
    private String createdUserId;

    private String createdUserName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private LocalDateTime createdTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String sensitiveTime;
}
